perm filename BASIC.PUB[L,MRC] blob
sn#477024 filedate 1979-09-06 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00007 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 . DEVICE XGP
C00008 00003 .<< Print in //italics/ or boldface. >>
C00010 00004 .<< Print page headings on XGP (using boldface) before new page started. >>
C00012 00005 .<< Set line spacing to new value. >>
C00014 00006 .<< Start text justification. >>
C00015 00007 .<< Set up for body of text. >>
C00016 ENDMK
C⊗;
. DEVICE XGP;
.
.
. SIDES ← 1;
.<< Set up fonts and text responses for device selected. >>
.
.
.<< Turn on quote character ("α") and font switching character ("%"). >>
.
.TURN ON "α%";
.
.<< Declare Baskerville fonts, FIX25 for special characters, and SUP for footnote
.numbers. >>
.
.FONT 1 "BASL30";
.FONT 2 "BASI30";
.FONT 3 "BASB30";
.FONT 4 "FIX25";
.FONT 5 "SUP";
.<< FONT 6 "DIA.FNT[FNT,GHB]";>>
.<< FONT 7 "MTEXT.FNT[FNT,GHB];>>
.
.
.<< a sharp, flat, and alla breve time signature. >>
.
.<< AT "##" ⊂ "%7α#%*"; ⊃;>>
.<< AT "#b" ⊂ "%7αb%*"; ⊃;>>
.<< AT "#C" ⊂ "%7αC%*"; ⊃;>>
.<< AT "#≠" ⊂ "%7α≠%*"; ⊃;>>
.<< AT "#4" ⊂ "%64%*"; ⊃;>>
.<< AT "#≥" ⊂ "%6≥%*"; ⊃;>>
.
.
.<< Put in ligatures in all three Baskerville fonts. >>
.
.AT "ffl" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "α∞" ELSE "αfαfαl"; ⊃;
.AT "ffi" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "α≠" ELSE "αfαfαi"; ⊃;
.AT "ff" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "α≥" ELSE "αfαf"; ⊃;
.AT "fi" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "α≡" ELSE "αfαi"; ⊃;
.AT "fl" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "α∨" ELSE "αfαl"; ⊃;
.
.<< Provide Stanford ASCII characters not available in Baskerville. >>
.
.AT "'%" ⊂ "α%"; ⊃;
.AT "¬" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "%4α¬%*" ELSE "α¬"; ⊃;
.AT "ε" ⊂ IF THISFONT = 1 THEN "%2αε%*" ELSE "αε"; ⊃;
.AT "∀" ⊂ IF THISFONT = 1 THEN "%2α∀%*" ELSE "α∀"; ⊃;
.AT "~" ⊂ IF THISFONT = 2 THEN "%1α~%*" ELSE "α~"; ⊃;
.AT "≠" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "%4α≠%*" ELSE "α≠"; ⊃;
.AT "≥" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "%4α≥%*" ELSE "α≥"; ⊃;
.AT "≡" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "%4α≡%*" ELSE "α≡"; ⊃;
.
.<< Convert two successive Baskerville hyphens into em dash. >>
.
.AT "--" ⊂ IF 1 ≤ THISFONT ≤ 3 THEN "α¬" ELSE "α--"; ⊃;
.
.<< fix .) constructs. >>
.
.<< .AT ".)" ⊂ ".) " ⊃; >>
.
.
.
.<< make up diacriticals >>
.
.<< .AT ":a" ⊂ "%6α:%*a" ⊃;>>
.<< .AT ":o" ⊂ "%6α:%*o" ⊃;>>
.<< .AT ":u" ⊂ "%6α:%*u" ⊃;>>
.<< .AT "'a" ⊂ "%6α'%*a" ⊃;>>
.<< .AT "'e" ⊂ "%6α'%*e" ⊃;>>
.<<.AT "'o" ⊂ "%6α'%*o" ⊃;>>
.<<.AT "'u" ⊂ "%6α'%*u" ⊃;>>
.<<.AT "'U" ⊂ "%6α'%*U" ⊃;>>
.<<.AT "`a" ⊂ "%6α`%*a" ⊃;>>
.<<.AT "`e" ⊂ "%6α`%*e" ⊃;>>
.<<.AT "`o" ⊂ "%6α`%*o" ⊃;>>
.<<.AT "`u" ⊂ "%6α`%*u" ⊃;>>
.<<.AT "''" ⊂ "α'" ⊃;>>
.<<.AT "∧a" ⊂ "%6α∧%*a" ⊃;>>
.<<.AT "∧e" ⊂ "%6α∧%*e" ⊃;>>
.<<.AT "∧i" ⊂ "%6α∧%*i" ⊃;>>
.<<.AT "∧o" ⊂ "%6α∧%*o" ⊃;>>
.<<.AT "∧u" ⊂ "%6α∧%*u" ⊃;>>
.<<.AT ",c" ⊂ "%6α,%*c" ⊃;>>
.<<.AT ",C" ⊂ "%6α,%*C" ⊃;>>
.<<.AT ":O" ⊂ "%6α:%*O" ⊃;>>
.<<.AT ":e" ⊂ "%6α:%*e" ⊃;>>
.<<.AT ":y" ⊂ "%6α:%*y" ⊃;>>
.<<.AT ":U" ⊂ "%6α:%*U" ⊃;>>
.<<.AT "'E" ⊂ "%6α'%*E" ⊃;>>
.<<.AT "'i" ⊂ "%6α'%*i" ⊃;>>
.<<.AT "''" ⊂ "α'" ⊃;>>
.<<.AT "'\" ⊂ "α/" ⊃;>>
.<<.AT "∨r" ⊂ "%6α∨%*r" ⊃;<<
.<<.AT "∨s" ⊂ "%6α∨%*s" ⊃;>>
.<<.AT "∨z" ⊂ "%6α∨%*z" ⊃;>>
.AT "[ALPH]" ⊂ "%4αα%*" ⊃;
.AT "[ARROW]" ⊂ "%4α↓%*" ⊃;
.AT "[DOT]" ⊂ "%4α.%*" ⊃;
.AT "[INF]" ⊂ "%4α∞%*" ⊃;
.
.
.<< Digest number of sides per page and columns per side. >>
.
. SIDES ← 1;
.<< Set up page frame and COLMNS macro for selected device. >>
.
. VARIABLE PAGE_HEIGHT, PAGE_WIDTH;
.
. ODDLEFTBORDER←EVENLEFTBORDER←1375;
. LMARG←0;
. TOPBORDER←500;
. PAGE_WIDTH←RMARG←76;
. PAGE_HEIGHT←54;
. PAGE FRAME PAGE_WIDTH WIDE PAGE_HEIGHT HIGH;
. AREA TEXT LINES 4 TO 53;
. TITLE AREA HEADING LINES 1 TO 3;
. TITLE AREA FOOTING LINE 54;
. COLS ← 1;
. SSNAME ← NULL;
. PLACE TEXT;
. NEXT PAGE;
.
.<< Print in //italics/ or ⊗⊗boldface⊗. >>
.
.AT "//" ENTRY "/"
. ⊂
. LASTFONT1 ← THISFONT;
. ("%2ENTRY%" & LASTFONT1);
. ⊃;
.
.AT "⊗⊗" ENTRY "⊗"
. ⊂
. LASTFONT2 ← THISFONT;
. ("%3ENTRY%" & LASTFONT2);
. ⊃;
.
.<< Print page headings on XGP (using boldface) before new page started. >>
.
.
.
.RECURSIVE MACRO STANDARD TITLES
. ⊂
. NOFILL;
. TURN ON "←→{";
. PREFACE 0;
. INDENT 0,0,0;
. PLACE HEADING;
. SELECT 3;
. !EH;
. PLACE FOOTING;
. !EF;
. ⊃;
.
.<< Set line spacing to new value. >>
.
.MACRO SPACES(NUMSPACES)
. ⊂
. IF NUMSPACES > 0
. THEN
. START "SET NEW INTER- AND INTRA-PARAGRAPH SPACING"
. BREAK;
. PREFACE NUMSPACES;
. SPACING NUMSPACES-1;
. END "SET NEW INTER- AND INTRA-PARAGRAPH SPACING"
. ELSE USERERR("SPACES argument not positive integer");
. ⊃;
.<< Start text justification. >>
.
.MACRO JUSTIFY
. ⊂
. FILL;
. ADJUST;
. RETAIN;
. ⊃;
.
.<< Set up for body of text. >>
.
. 4'i*$Sg⊂&`RgεE↔βE↔⊂⊂⊃k"i,H$"`b∩g#T⊗=h cQP␈∀]CE↔εE⊂)bf⊃aj⊂_NFE↔⊂∩*ij$Q,]FE⊂!gjS*⊂( QbP#)∪fP_P∃'P≤\N]FE↔λ'"l*λ( cbNFE↔⊂∀h abTP→≥FB↔⊂$g⊃"g*⊂
]FE∃